;******************************************************************************
;* TMS320C6x C/C++ Codegen                                    PC Version 4.36 *
;* Date/Time created: Tue Jun 22 14:07:18 2004                                *
;******************************************************************************

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C64xx                                          *
;*   Optimization      : Enabled at level 2                                   *
;*   Optimizing for    : Speed                                                *
;*                       Based on options: -o2, no -ms                        *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : 100                                                  *
;*   Memory Model      : Large                                                *
;*   Calls to RTS      : Far                                                  *
;*   Pipelining        : Enabled                                              *
;*   Speculative Load  : Enabled                                              *
;*   Memory Aliases    : Presume not aliases (optimistic)                     *
;*   Debug Info        : No Debug Info                                        *
;*                                                                            *
;******************************************************************************

	.asg	A15, FP
	.asg	B14, DP
	.asg	B15, SP
	.global	$bss

;	c:\ti_6000\c6000\cgtools\bin\opt6x.exe -t -DI100 -v6400 -q -O2 C:\DOCUME~1\A03238~1.USA\LOCALS~1\Temp\TI3468_2 C:\DOCUME~1\A03238~1.USA\LOCALS~1\Temp\TI3468_5 -w . 

	.sect	".text"
	.global	_filter_design

;******************************************************************************
;* FUNCTION NAME: _filter_design                                              *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,  *
;*                           A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20,B21, *
;*                           B22,B23,B24,B25,B26,B27,B28,B29,B30,B31          *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,  *
;*                           A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20,B21, *
;*                           B22,B23,B24,B25,B26,B27,B28,B29,B30,B31          *
;*   Local Frame Size  : 0 Args + 40 Auto + 44 Save = 84 byte                 *
;******************************************************************************
_filter_design:
;** --------------------------------------------------------------------------*
           MVKL    .S2     __fltid,B5        ; |27| 

           MVKH    .S2     __fltid,B5        ; |27| 
||         STW     .D2T1   A15,*SP--(88)     ; |22| 
||         MV      .D1X    SP,A31            ; |22| 

           CALL    .S2     B5                ; |27| 
||         STDW    .D2T2   B13:B12,*+SP(80)

           STDW    .D1T1   A13:A12,*-A31(32)
||         STW     .D2T2   B4,*+SP(4)        ; |22| 

           STDW    .D1T1   A11:A10,*-A31(40)
||         STDW    .D2T2   B11:B10,*+SP(72)

           STW     .D2T1   A6,*+SP(8)        ; |22| 

           STW     .D2T2   B3,*+SP(68)
||         STW     .D1T1   A14,*-A31(24)

           ADDKPC  .S2     RL0,B3,0          ; |27| 
||         STW     .D2T1   A4,*+SP(12)       ; |22| 
||         MV      .D1     A4,A13            ; |22| 
||         CMPGT   .L1     A4,0,A10          ; |28| 
||         MV      .L2     B6,B12            ; |22| 

RL0:       ; CALL OCCURS                     ; |27| 
           MV      .D1     A10,A0
   [!A0]   B       .S1     L6                ; |28| 

           ZERO    .D1     A4
||         STW     .D2T1   A4,*+SP(16)       ; |27| 
||         MVKL    .S2     __fltid,B4

           STW     .D2T1   A4,*+SP(20)
||         MVKH    .S2     __fltid,B4
||         ZERO    .D1     A3                ; |25| 

           STW     .D2T1   A3,*+SP(24)
||         MVKL    .S2     __mpyd,B10

           STW     .D2T1   A5,*+SP(28)       ; |27| 
||         MV      .D1     A13,A4
||         MVKH    .S2     __mpyd,B10

   [!A0]   LDW     .D2T2   *+SP(68),B3       ; |55| 
           ; BRANCH OCCURS                   ; |28| 
;** --------------------------------------------------------------------------*
           CALL    .S2     B4
           NOP             4
           ADDKPC  .S2     RL2,B3,0
RL2:       ; CALL OCCURS   
           CALL    .S2     B10
           ZERO    .D2     B5
           MVKH    .S2     0x3fe00000,B5
           ZERO    .D2     B4
           ADDKPC  .S2     RL3,B3,1
RL3:       ; CALL OCCURS   

           MV      .S2X    A4,B13
||         STW     .D2T1   A5,*+SP(32)

;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L1
;** --------------------------------------------------------------------------*
L1:    
           LDW     .D2T1   *+SP(24),A3
           NOP             2
           LDW     .D2T1   *+SP(24),A5
           MVK     .D1     0xffffffff,A12    ; |30| 
           MPYLH   .M1     A13,A3,A4
           MPYLH   .M1     A3,A13,A3
           NOP             1

           MPYU    .M1     A13,A5,A4
||         ADD     .D1     A4,A3,A3

           SHL     .S1     A3,16,A3
           ADD     .D1     A4,A3,A3
           STW     .D2T1   A3,*+SP(36)
           EXT     .S1     A12,16,16,A3      ; |32| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains control code
;*----------------------------------------------------------------------------*
L2:    
           MPYLI   .M1     A3,A13,A5:A4      ; |32| 
           LDW     .D2T1   *+SP(20),A3       ; |32| 
           NOP             2
           MVKL    .S1     __fltid,A5        ; |32| 
           MVKH    .S1     __fltid,A5        ; |32| 
           SUB     .D1     A3,A4,A4          ; |32| 

           CALL    .S2X    A5                ; |32| 
||         LDW     .D2T1   *+SP(36),A3       ; |32| 

           ADDKPC  .S2     RL8,B3,3          ; |32| 
           SUB     .D1     A4,A3,A4          ; |32| 
RL8:       ; CALL OCCURS                     ; |32| 
           MVKL    .S1     __addd,A3         ; |32| 
           MVKH    .S1     __addd,A3         ; |32| 
           LDW     .D2T2   *+SP(32),B5       ; |32| 
           CALL    .S2X    A3                ; |32| 
           MV      .D2     B13,B4            ; |32| 
           ADDKPC  .S2     RL9,B3,3          ; |32| 
RL9:       ; CALL OCCURS                     ; |32| 
           MVKL    .S1     __divd,A3         ; |32| 
           MVKH    .S1     __divd,A3         ; |32| 
           LDW     .D2T2   *+SP(28),B5       ; |32| 
           CALL    .S2X    A3                ; |32| 
           LDW     .D2T2   *+SP(16),B4       ; |32| 
           ADDKPC  .S2     RL10,B3,3         ; |32| 
RL10:      ; CALL OCCURS                     ; |32| 
           MVKL    .S2     __cmpd,B6
           MVKH    .S2     __cmpd,B6
           CALL    .S2     B6
           MV      .S1     A5,A10            ; |32| 
           MV      .D1     A4,A11            ; |32| 
           ZERO    .L2     B5:B4
           ADDKPC  .S2     RL11,B3,1
RL11:      ; CALL OCCURS   
           CMPLT   .L1     A4,0,A0
   [!A0]   BNOP    .S1     L3,2

   [!A0]   MVKL    .S1     __cmpd,A3
|| [ A0]   MVKL    .S2     __negd,B4         ; |35| 

   [!A0]   MVKH    .S1     __cmpd,A3
|| [ A0]   MVKH    .S2     __negd,B4         ; |35| 

           NOP             1
           ; BRANCH OCCURS  
;** --------------------------------------------------------------------------*
           CALL    .S2     B4                ; |35| 
           ADDKPC  .S2     RL12,B3,2         ; |35| 
           MV      .D1     A11,A4            ; |35| 
           MV      .S1     A10,A5            ; |35| 
RL12:      ; CALL OCCURS                     ; |35| 

           MV      .S1     A4,A11            ; |35| 
||         MV      .D1     A5,A10            ; |35| 

           MVKL    .S1     __cmpd,A3
           MVKH    .S1     __cmpd,A3
           NOP             1
;** --------------------------------------------------------------------------*
L3:    
           CALL    .S2X    A3
           ZERO    .D2     B5
           MVKH    .S2     0x40000000,B5
           ADDKPC  .S2     RL37,B3,0
           MV      .D1     A11,A4

           MV      .S1     A10,A5
||         ZERO    .D2     B4

RL37:      ; CALL OCCURS   
           CMPLT   .L1     A4,0,A3
           MV      .D1     A3,A0
   [!A0]   B       .S1     L4
           STW     .D2T1   A3,*+SP(40)
   [ A0]   MVKL    .S1     __mpyd,A3
   [ A0]   MVKH    .S1     __mpyd,A3
   [!A0]   MVKL    .S1     __cmpd,A3
   [!A0]   MVKH    .S1     __cmpd,A3
           ; BRANCH OCCURS  
;** --------------------------------------------------------------------------*
           CALL    .S2X    A3
           MVKL    .S2     0xbfd8e3bc,B5
           MVKL    .S2     0xd35a8588,B4
           MVKH    .S2     0xbfd8e3bc,B5
           MVKH    .S2     0xd35a8588,B4

           ADDKPC  .S2     RL38,B3,0
||         MV      .D1     A11,A4
||         MV      .S1     A10,A5

RL38:      ; CALL OCCURS   
           MVKL    .S1     __mpyd,A3
           MVKH    .S1     __mpyd,A3
           MV      .D2X    A10,B5
           CALL    .S2X    A3
           ADDKPC  .S2     RL39,B3,3
           MV      .D2X    A11,B4
RL39:      ; CALL OCCURS   
           MVKL    .S1     __mpyd,A3
           MVKH    .S1     __mpyd,A3
           MV      .D2X    A10,B5
           CALL    .S2X    A3
           MV      .D2X    A11,B4
           ADDKPC  .S2     RL40,B3,3
RL40:      ; CALL OCCURS   
           MVKL    .S1     __addd,A3
           MVKH    .S1     __addd,A3
           MV      .D1     A5,A15
           CALL    .S2X    A3
           MV      .D2X    A10,B5
           MV      .L1     A4,A14
           MV      .D2X    A11,B4
           MV      .S1     A10,A5

           ADDKPC  .S2     RL41,B3,0
||         MV      .D1     A11,A4

RL41:      ; CALL OCCURS   
           MVKL    .S2     __mpyd,B6
           MVKH    .S2     __mpyd,B6
           CALL    .S2     B6
           MV      .D2X    A10,B5
           MV      .D2X    A11,B4
           ADDKPC  .S2     RL42,B3,2
RL42:      ; CALL OCCURS   
           MVKL    .S1     __addd,A3
           MVKH    .S1     __addd,A3
           MV      .D2X    A5,B5
           CALL    .S2X    A3
           MV      .D2X    A4,B4
           MV      .S1     A14,A4
           MV      .D1     A15,A5
           ADDKPC  .S2     RL43,B3,1
RL43:      ; CALL OCCURS   
           MVKL    .S1     __mpyd,A3
           MVKH    .S1     __mpyd,A3
           MVKL    .S2     0x30be0ded,B4
           CALL    .S2X    A3
           MVKL    .S2     0x400aaa99,B5
           MVKH    .S2     0x30be0ded,B4
           MVKH    .S2     0x400aaa99,B5

           MV      .S1     A4,A15
||         MV      .D1     A5,A14

           MV      .S1     A10,A5
||         MV      .D1     A11,A4
||         ADDKPC  .S2     RL44,B3,0

RL44:      ; CALL OCCURS   
           MVKL    .S1     __subd,A3
           MVKH    .S1     __subd,A3
           MV      .D2X    A4,B4
           CALL    .S2X    A3
           MV      .D2X    A5,B5
           MV      .S1     A14,A5
           MV      .D1     A15,A4
           ADDKPC  .S2     RL45,B3,1
RL45:      ; CALL OCCURS   
           MVKL    .S2     __addd,B6
           MVKH    .S2     __addd,B6
           CALL    .S2     B6
           MVKL    .S2     0x3ffc71de,B5
           MVKL    .S2     0x69ad42c4,B4
           MVKH    .S2     0x3ffc71de,B5
           MVKH    .S2     0x69ad42c4,B4
           ADDKPC  .S2     RL46,B3,0
RL46:      ; CALL OCCURS   
           MV      .D2X    A4,B10
           MV      .D2X    A5,B11
           MVKL    .S1     __cmpd,A3
           MVKH    .S1     __cmpd,A3
;** --------------------------------------------------------------------------*
L4:    
           ZERO    .D2     B5
           CALL    .S2X    A3
           MVKH    .S2     0x3ff00000,B5
           ADDKPC  .S2     RL47,B3,0
           MV      .D1     A11,A4
           MV      .S1     A10,A5
           ZERO    .D2     B4
RL47:      ; CALL OCCURS   
           LDW     .D2T1   *+SP(40),A0
           NOP             4

           CMPLT   .L1     A4,0,A0
|| [!A0]   ZERO    .L2     B11:B10

   [!A0]   BNOP    .S1     L5,2

   [!A0]   ADD     .D1     1,A12,A12         ; |52| 
|| [ A0]   MVKL    .S1     __mpyd,A3         ; |46| 

   [!A0]   CMPLT   .L1     A12,3,A0          ; |52| 
|| [ A0]   MVKH    .S1     __mpyd,A3         ; |46| 

           NOP             1
           ; BRANCH OCCURS  
;** --------------------------------------------------------------------------*
           CALL    .S2X    A3                ; |46| 
           MVKL    .S2     0x3ff2aacd,B5     ; |46| 
           MVKL    .S2     0x9e83e426,B4     ; |46| 
           MVKH    .S2     0x3ff2aacd,B5     ; |46| 
           MVKH    .S2     0x9e83e426,B4     ; |46| 

           ADDKPC  .S2     RL70,B3,0         ; |46| 
||         MV      .D1     A11,A4            ; |46| 
||         MV      .S1     A10,A5            ; |46| 

RL70:      ; CALL OCCURS                     ; |46| 
           MVKL    .S1     __mpyd,A3         ; |46| 
           MVKH    .S1     __mpyd,A3         ; |46| 
           MV      .D2X    A10,B5            ; |46| 
           CALL    .S2X    A3                ; |46| 
           ADDKPC  .S2     RL71,B3,3         ; |46| 
           MV      .D2X    A11,B4            ; |46| 
RL71:      ; CALL OCCURS                     ; |46| 
           MVKL    .S2     __mpyd,B6         ; |46| 
           MVKH    .S2     __mpyd,B6         ; |46| 
           CALL    .S2     B6                ; |46| 
           MV      .D2X    A10,B5            ; |46| 
           MV      .D2X    A11,B4            ; |46| 
           ADDKPC  .S2     RL72,B3,2         ; |46| 
RL72:      ; CALL OCCURS                     ; |46| 
           MVKL    .S1     __addd,A3         ; |46| 
           MVKH    .S1     __addd,A3         ; |46| 
           MV      .D1     A5,A14            ; |46| 
           CALL    .S2X    A3                ; |46| 
           MV      .D2X    A10,B5            ; |46| 
           MV      .L1     A4,A15            ; |46| 
           MV      .D2X    A11,B4            ; |46| 
           MV      .S1     A10,A5            ; |46| 

           ADDKPC  .S2     RL73,B3,0         ; |46| 
||         MV      .D1     A11,A4            ; |46| 

RL73:      ; CALL OCCURS                     ; |46| 
           MVKL    .S1     __mpyd,A3         ; |46| 
           MVKH    .S1     __mpyd,A3         ; |46| 
           MV      .D2X    A10,B5            ; |46| 
           CALL    .S2X    A3                ; |46| 
           MV      .D2X    A11,B4            ; |46| 
           ADDKPC  .S2     RL74,B3,3         ; |46| 
RL74:      ; CALL OCCURS                     ; |46| 
           MVKL    .S2     __subd,B6         ; |46| 
           MVKH    .S2     __subd,B6         ; |46| 
           CALL    .S2     B6                ; |46| 
           MV      .D2X    A4,B4             ; |46| 
           MV      .D2X    A5,B5             ; |46| 
           MV      .S1     A14,A5            ; |46| 
           MV      .D1     A15,A4            ; |46| 
           ADDKPC  .S2     RL75,B3,0         ; |46| 
RL75:      ; CALL OCCURS                     ; |46| 
           MVKL    .S1     __addd,A3         ; |46| 
           MVKH    .S1     __addd,A3         ; |46| 
           ZERO    .L2     B5:B4             ; |46| 
           CALL    .S2X    A3                ; |46| 
           ADDKPC  .S2     RL76,B3,4         ; |46| 
RL76:      ; CALL OCCURS                     ; |46| 
           MVKL    .S1     __addd,A3         ; |46| 
           MVKH    .S1     __addd,A3         ; |46| 
           MVKL    .S2     0x3fec71de,B5     ; |46| 
           CALL    .S2X    A3                ; |46| 
           MVKL    .S2     0x69ad42c4,B4     ; |46| 
           MVKH    .S2     0x3fec71de,B5     ; |46| 
           MVKH    .S2     0x69ad42c4,B4     ; |46| 
           ADDKPC  .S2     RL77,B3,1         ; |46| 
RL77:      ; CALL OCCURS                     ; |46| 
           MV      .D2X    A4,B10            ; |46| 
           MV      .D2X    A5,B11            ; |46| 
           ADD     .D1     1,A12,A12         ; |52| 
           CMPLT   .L1     A12,3,A0          ; |52| 
;** --------------------------------------------------------------------------*
L5:    
   [ A0]   B       .S1     L2                ; |52| 

           STDW    .D2T2   B11:B10,*B12++    ; |51| 
|| [ A0]   EXT     .S1     A12,16,16,A3      ; |32| 

   [!A0]   LDW     .D2T1   *+SP(8),A4
           NOP             3
           ; BRANCH OCCURS                   ; |52| 
;** --------------------------------------------------------------------------*
           NOP             1
           LDH     .D1T1   *A4++,A3          ; |53| 
           STW     .D2T1   A4,*+SP(8)        ; |53| 
           LDW     .D2T2   *+SP(12),B4
           NOP             1
           LDW     .D2T1   *+SP(4),A5
           LDW     .D2T1   *+SP(20),A6
           LDW     .D2T1   *+SP(24),A4
           SUB     .D1X    B4,1,A0           ; |54| 
   [ A0]   BNOP    .S1     L1,1              ; |54| 
           SUB     .D2     B4,1,B4           ; |54| 

           ADD     .D1     A5,A6,A4          ; |54| 
||         STW     .D2T2   B4,*+SP(12)       ; |53| 
||         ADD     .S1     A3,A4,A3          ; |53| 

           STW     .D2T1   A4,*+SP(20)       ; |53| 
           STW     .D2T1   A3,*+SP(24)       ; |53| 
           ; BRANCH OCCURS                   ; |54| 
;** --------------------------------------------------------------------------*
           LDW     .D2T2   *+SP(68),B3       ; |55| 
;** --------------------------------------------------------------------------*
L6:    
           MV      .D1X    SP,A31            ; |55| 
           LDDW    .D1T1   *+A31(56),A13:A12 ; |55| 
           LDDW    .D1T1   *+A31(48),A11:A10 ; |55| 
           LDDW    .D2T2   *+SP(72),B11:B10  ; |55| 

           RET     .S2     B3                ; |55| 
||         LDW     .D1T1   *+A31(64),A14     ; |55| 
||         LDDW    .D2T2   *+SP(80),B13:B12  ; |55| 

           LDW     .D2T1   *++SP(88),A15     ; |55| 
           NOP             4
           ; BRANCH OCCURS                   ; |55| 



	.sect	".text"
	.global	_filter_normalize

;******************************************************************************
;* FUNCTION NAME: _filter_normalize                                           *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,B0,*
;*                           B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,SP,   *
;*                           A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27, *
;*                           A28,A29,A30,A31,B16,B17,B18,B19,B20,B21,B22,B23, *
;*                           B24,B25,B26,B27,B28,B29,B30,B31                  *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,B0,*
;*                           B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,SP,   *
;*                           A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27, *
;*                           A28,A29,A30,A31,B16,B17,B18,B19,B20,B21,B22,B23, *
;*                           B24,B25,B26,B27,B28,B29,B30,B31                  *
;*   Local Frame Size  : 0 Args + 0 Auto + 36 Save = 36 byte                  *
;******************************************************************************
_filter_normalize:
;** --------------------------------------------------------------------------*
           CMPGT   .L1     A4,0,A0           ; |61| 
   [!A0]   B       .S1     L10               ; |61| 

           STW     .D2T1   A13,*SP--(40)     ; |58| 
||         MV      .D1X    SP,A31            ; |58| 

           STW     .D1T1   A14,*-A31(20)
||         STDW    .D2T2   B13:B12,*+SP(32)

           MV      .S1X    B3,A14
||         STDW    .D2T2   B11:B10,*+SP(24)
||         STW     .D1T1   A12,*-A31(24)

           MV      .D1     A4,A11            ; |58| 
||         STDW    .D2T1   A11:A10,*+SP(8)
||         MV      .S1X    B4,A12            ; |58| 
||         ZERO    .S2     B13

   [!A0]   LDDW    .D2T1   *+SP(8),A11:A10   ; |68| 
|| [!A0]   MV      .D1X    SP,A31            ; |68| 

           ; BRANCH OCCURS                   ; |61| 
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L7
;** --------------------------------------------------------------------------*
L7:    

           ADD     .D2X    B13,A12,B12
||         MVK     .D1     0x4,A10           ; |64| 
||         ZERO    .L2     B11:B10           ; |63| 

           MVKL    .S1     __addd,A3         ; |64| 
           MVKH    .S1     __addd,A3         ; |64| 
           NOP             1
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
L8:    
           CALL    .S2X    A3                ; |64| 
           LDDW    .D2T2   *B12++,B5:B4      ; |64| 
           MV      .D1X    B10,A4            ; |64| 
           ADDKPC  .S2     RL78,B3,1         ; |64| 
           MV      .D1X    B11,A5            ; |64| 
RL78:      ; CALL OCCURS                     ; |64| 
           SUB     .D1     A10,1,A0          ; |64| 
   [ A0]   B       .S1     L8                ; |64| 
           MV      .D2X    A5,B11            ; |64| 

   [ A0]   MVKL    .S1     __addd,A3         ; |64| 
||         MV      .D2X    A4,B10            ; |64| 
||         SUB     .D1     A10,1,A10         ; |64| 

   [ A0]   MVKH    .S1     __addd,A3         ; |64| 
   [!A0]   MVKL    .S1     __cmpd,A3         ; |65| 
   [!A0]   MVKH    .S1     __cmpd,A3         ; |65| 
           ; BRANCH OCCURS                   ; |64| 
;** --------------------------------------------------------------------------*
           ZERO    .L2     B5:B4             ; |65| 
           CALL    .S2X    A3                ; |65| 
           ADDKPC  .S2     RL79,B3,4         ; |65| 
RL79:      ; CALL OCCURS                     ; |65| 
           CMPLT   .L1     A4,0,A0           ; |65| 
   [!A0]   BNOP    .S1     L9,2              ; |65| 

   [ A0]   MVKL    .S1     __negd,A3         ; |65| 
|| [!A0]   ADD     .D1X    B13,A12,A10
|| [!A0]   MVK     .L1     0x4,A13           ; |66| 
|| [!A0]   MVKL    .S2     __divd,B6         ; |66| 

   [ A0]   MVKH    .S1     __negd,A3         ; |65| 
|| [!A0]   MVKH    .S2     __divd,B6         ; |66| 

           NOP             1
           ; BRANCH OCCURS                   ; |65| 
;** --------------------------------------------------------------------------*
           CALL    .S2X    A3                ; |65| 
           MV      .D1X    B10,A4            ; |65| 
           ADDKPC  .S2     RL80,B3,2         ; |65| 
           MV      .D1X    B11,A5            ; |65| 
RL80:      ; CALL OCCURS                     ; |65| 
           MV      .D2X    A4,B10            ; |65| 
           MV      .D2X    A5,B11            ; |65| 

           MVK     .S1     0x4,A13           ; |66| 
||         ADD     .D1X    B13,A12,A10

           MVKL    .S2     __divd,B6         ; |66| 
           MVKH    .S2     __divd,B6         ; |66| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
L9:    
           CALL    .S2     B6                ; |66| 
           LDDW    .D1T1   *A10,A5:A4        ; |66| 
           ADDKPC  .S2     RL81,B3,1         ; |66| 
           MV      .D2     B11,B5            ; |66| 
           MV      .L2     B10,B4            ; |66| 
RL81:      ; CALL OCCURS                     ; |66| 
           SUB     .D1     A13,1,A0          ; |66| 
   [ A0]   BNOP    .S1     L9,3              ; |66| 

   [ A0]   MVKL    .S2     __divd,B6         ; |66| 
||         SUB     .S1     A13,1,A13         ; |66| 
||         STDW    .D1T1   A5:A4,*A10++      ; |66| 

   [!A0]   SUB     .D1     A11,1,A0          ; |67| 
|| [ A0]   MVKH    .S2     __divd,B6         ; |66| 

           ; BRANCH OCCURS                   ; |66| 
;** --------------------------------------------------------------------------*
   [ A0]   BNOP    .S1     L7,4              ; |67| 

           SUB     .S1     A11,1,A11         ; |67| 
||         ADDK    .S2     32,B13            ; |67| 
|| [!A0]   LDDW    .D2T1   *+SP(8),A11:A10   ; |68| 
|| [!A0]   MV      .D1X    SP,A31            ; |68| 

           ; BRANCH OCCURS                   ; |67| 
;** --------------------------------------------------------------------------*
L10:    

           LDW     .D1T1   *+A31(16),A12     ; |68| 
||         LDDW    .D2T2   *+SP(24),B11:B10  ; |68| 
||         MV      .S2X    A14,B3            ; |68| 

           RET     .S2     B3                ; |68| 
||         LDW     .D1T1   *+A31(20),A14     ; |68| 
||         LDDW    .D2T2   *+SP(32),B13:B12  ; |68| 

           LDW     .D2T1   *++SP(40),A13     ; |68| 
           NOP             4
           ; BRANCH OCCURS                   ; |68| 



	.sect	".text"
	.global	_bresenham_guide

;******************************************************************************
;* FUNCTION NAME: _bresenham_guide                                            *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,  *
;*                           A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20,B21, *
;*                           B22,B23,B24,B25,B26,B27,B28,B29,B30,B31          *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,  *
;*                           A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20,B21, *
;*                           B22,B23,B24,B25,B26,B27,B28,B29,B30,B31          *
;*   Local Frame Size  : 0 Args + 12 Auto + 44 Save = 56 byte                 *
;******************************************************************************
_bresenham_guide:
;** --------------------------------------------------------------------------*
           MVKL    .S1     __fltid,A3        ; |79| 
           MVKH    .S1     __fltid,A3        ; |79| 
           MV      .D1X    SP,A31            ; |71| 
           CALL    .S2X    A3                ; |79| 
           STW     .D2T1   A15,*SP--(56)     ; |71| 
           STDW    .D1T1   A13:A12,*-A31(32)
           STDW    .D2T2   B13:B12,*+SP(48)

           STDW    .D2T2   B11:B10,*+SP(40)
||         STDW    .D1T1   A11:A10,*-A31(40)

           ADDKPC  .S2     RL82,B3,0         ; |79| 
||         STW     .D2T2   B3,*+SP(36)
||         MV      .S1X    B4,A10            ; |71| 
||         MV      .L1     A6,A12            ; |71| 
||         STW     .D1T1   A14,*-A31(24)

RL82:      ; CALL OCCURS                     ; |79| 
           MVKL    .S1     __fltid,A3        ; |79| 
           MVKH    .S1     __fltid,A3        ; |79| 
           MV      .S1     A4,A13            ; |79| 
           CALL    .S2X    A3                ; |79| 
           ADDKPC  .S2     RL84,B3,2         ; |79| 
           MV      .D1     A10,A4            ; |79| 
           MV      .L1     A5,A15            ; |79| 
RL84:      ; CALL OCCURS                     ; |79| 
           MVKL    .S1     __divd,A3         ; |79| 
           MVKH    .S1     __divd,A3         ; |79| 
           MV      .D2X    A15,B5            ; |79| 
           CALL    .S2X    A3                ; |79| 
           MV      .D2X    A13,B4            ; |79| 
           ADDKPC  .S2     RL85,B3,3         ; |79| 
RL85:      ; CALL OCCURS                     ; |79| 
           MVKL    .S1     __addd,A3         ; |84| 
           MVKH    .S1     __addd,A3         ; |84| 
           ZERO    .D2     B5                ; |84| 
           CALL    .S2X    A3                ; |84| 
           MVKH    .S2     0x3ff00000,B5     ; |84| 
           MV      .D2X    A4,B12            ; |79| 
           ZERO    .L2     B4                ; |84| 
           MV      .D2X    A5,B11            ; |79| 
           ADDKPC  .S2     RL87,B3,0         ; |84| 
RL87:      ; CALL OCCURS                     ; |84| 
           MVKL    .S1     __fixdi,A3        ; |84| 
           MVKH    .S1     __fixdi,A3        ; |84| 
           NOP             1
           CALL    .S2X    A3                ; |84| 
           ADDKPC  .S2     RL88,B3,4         ; |84| 
RL88:      ; CALL OCCURS                     ; |84| 
           MVKL    .S1     __fltid,A3        ; |84| 
           MVKH    .S1     __fltid,A3        ; |84| 
           MV      .D1     A4,A10            ; |84| 
           CALL    .S2X    A3                ; |84| 
           ADDKPC  .S2     RL89,B3,4         ; |84| 
RL89:      ; CALL OCCURS                     ; |84| 
           MVKL    .S1     __fltid,A3        ; |85| 
           MVKH    .S1     __fltid,A3        ; |85| 
           MV      .D1     A4,A14            ; |84| 
           CALL    .S2X    A3                ; |85| 
           ADDKPC  .S2     RL90,B3,1         ; |85| 
           STW     .D2T1   A5,*+SP(4)        ; |84| 
           NOP             1
           MV      .D1     A10,A4            ; |85| 
RL90:      ; CALL OCCURS                     ; |85| 
           MVKL    .S2     __addd,B6         ; |86| 
           MVKH    .S2     __addd,B6         ; |86| 
           CALL    .S2     B6                ; |86| 
           ZERO    .D2     B5                ; |86| 
           MVKH    .S2     0x3ff00000,B5     ; |86| 
           MV      .S1     A4,A10            ; |85| 
           MV      .D1     A5,A11            ; |85| 

           MV      .S1     A13,A4            ; |86| 
||         ZERO    .D2     B4                ; |86| 
||         MV      .D1     A15,A5            ; |86| 
||         ADDKPC  .S2     RL91,B3,0         ; |86| 

RL91:      ; CALL OCCURS                     ; |86| 
           MVKL    .S2     __cmpd,B6         ; |86| 
           MVKH    .S2     __cmpd,B6         ; |86| 
           CALL    .S2     B6                ; |86| 
           MV      .D2X    A5,B13            ; |86| 
           ZERO    .L2     B4                ; |86| 
           ZERO    .D2     B5                ; |86| 
           MVKH    .S2     0x3ff00000,B5     ; |86| 

           STW     .D2T1   A4,*+SP(8)        ; |86| 
||         ADDKPC  .S2     RL92,B3,0         ; |86| 

RL92:      ; CALL OCCURS                     ; |86| 
           CMPGT   .L1     A4,0,A0           ; |86| 
   [!A0]   B       .S1     L14               ; |86| 
           ZERO    .D1     A13               ; |86| 

   [!A0]   LDW     .D2T2   *+SP(36),B3       ; |101| 
||         ZERO    .D1     A15               ; |86| 
||         MVKH    .S1     0x3ff00000,A13    ; |86| 

           NOP             1
   [!A0]   MV      .D1X    SP,A31            ; |101| 
   [!A0]   LDDW    .D1T1   *+A31(24),A13:A12 ; |101| 
           ; BRANCH OCCURS                   ; |86| 
;** --------------------------------------------------------------------------*
           MVKL    .S2     __divd,B6
           MVKH    .S2     __divd,B6
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains control code
;*----------------------------------------------------------------------------*
L11:    
           CALL    .S2     B6
           ADDKPC  .S2     RL94,B3,0
           MV      .D2X    A15,B4
           MV      .D1     A11,A5
           MV      .D2X    A13,B5
           MV      .S1     A10,A4
RL94:      ; CALL OCCURS   
           MVKL    .S1     __cmpd,A3
           MVKH    .S1     __cmpd,A3
           MV      .D2     B12,B4
           CALL    .S2X    A3
           ADDKPC  .S2     RL95,B3,3
           MV      .L2     B11,B5
RL95:      ; CALL OCCURS   
           CMPGT   .L1     A4,0,A0
   [ A0]   BNOP    .S1     L12,2

   [ A0]   MVKL    .S2     __subd,B6         ; |92| 
|| [!A0]   MVKL    .S1     __fixdi,A3        ; |92| 

   [ A0]   MVKH    .S2     __subd,B6         ; |92| 
|| [!A0]   MVKH    .S1     __fixdi,A3        ; |92| 

           NOP             1
           ; BRANCH OCCURS  
;** --------------------------------------------------------------------------*
           CALL    .S2X    A3                ; |92| 
           LDW     .D2T1   *+SP(4),A5        ; |92| 
           ADDKPC  .S2     RL96,B3,2         ; |92| 
           MV      .D1     A14,A4            ; |92| 
RL96:      ; CALL OCCURS                     ; |92| 
           MVKL    .S2     __addd,B6         ; |93| 
           MVKH    .S2     __addd,B6         ; |93| 
           CALL    .S2     B6                ; |93| 
           LDW     .D2T2   *+SP(4),B5        ; |92| 
           MV      .D2X    A14,B4            ; |93| 
           MV      .L1     A11,A5            ; |93| 
           STH     .D1T1   A4,*A12           ; |92| 

           MV      .S1     A10,A4            ; |93| 
||         ADDKPC  .S2     RL97,B3,0         ; |93| 

RL97:      ; CALL OCCURS                     ; |93| 
           BNOP    .S1     L13,2
           MVKL    .S1     __addd,A3         ; |100| 
           MVKH    .S1     __addd,A3         ; |100| 
           NOP             1
           ; BRANCH OCCURS  
;** --------------------------------------------------------------------------*
L12:    
           CALL    .S2     B6                ; |92| 
           LDW     .D2T1   *+SP(4),A5        ; |92| 
           ZERO    .D2     B5                ; |92| 
           MVKH    .S2     0x3ff00000,B5     ; |92| 
           ADDKPC  .S2     RL98,B3,0         ; |92| 

           MV      .D1     A14,A4            ; |92| 
||         ZERO    .D2     B4                ; |92| 

RL98:      ; CALL OCCURS                     ; |92| 
           MVKL    .S2     __fixdi,B4        ; |92| 
           MVKH    .S2     __fixdi,B4        ; |92| 
           CALL    .S2     B4                ; |92| 
           ADDKPC  .S2     RL99,B3,1         ; |92| 
           STW     .D2T1   A5,*+SP(12)       ; |92| 
           NOP             1
           MV      .L2X    A4,B10            ; |92| 
RL99:      ; CALL OCCURS                     ; |92| 
           MVKL    .S1     __addd,A3         ; |93| 
           MVKH    .S1     __addd,A3         ; |93| 
           LDW     .D2T2   *+SP(12),B5       ; |92| 
           CALL    .S2X    A3                ; |93| 
           MV      .D2     B10,B4            ; |93| 
           STH     .D1T1   A4,*A12           ; |92| 
           MV      .S1     A10,A4            ; |93| 
           MV      .L1     A11,A5            ; |93| 
           ADDKPC  .S2     RL100,B3,0        ; |93| 
RL100:     ; CALL OCCURS                     ; |93| 
           MVKL    .S1     __addd,A3         ; |100| 
           MVKH    .S1     __addd,A3         ; |100| 
           NOP             1
;** --------------------------------------------------------------------------*
L13:    
           CALL    .S2X    A3                ; |100| 
           ZERO    .D2     B5                ; |100| 
           MVKH    .S2     0x3ff00000,B5     ; |100| 
           MV      .D1     A5,A11            ; |93| 
           ADDKPC  .S2     RL102,B3,0        ; |100| 

           MV      .S1     A13,A5            ; |100| 
||         ZERO    .D2     B4                ; |100| 
||         MV      .L1     A4,A10            ; |93| 
||         MV      .D1     A15,A4            ; |100| 

RL102:     ; CALL OCCURS                     ; |100| 
           MVKL    .S1     __cmpd,A3         ; |100| 
           MVKH    .S1     __cmpd,A3         ; |100| 
           LDW     .D2T2   *+SP(8),B4        ; |100| 
           CALL    .S2X    A3                ; |100| 
           ADDKPC  .S2     RL103,B3,1        ; |100| 
           MV      .D2     B13,B5            ; |100| 
           MV      .D1     A4,A15            ; |100| 
           MV      .S1     A5,A13            ; |100| 
RL103:     ; CALL OCCURS                     ; |100| 
           CMPLT   .L1     A4,0,A0           ; |100| 
   [ A0]   BNOP    .S1     L11,1             ; |100| 

   [!A0]   LDW     .D2T2   *+SP(36),B3       ; |101| 
|| [ A0]   MVKL    .S2     __divd,B6
||         ADD     .D1     2,A12,A12         ; |99| 

   [ A0]   MVKH    .S2     __divd,B6
   [!A0]   MV      .D1X    SP,A31            ; |101| 
   [!A0]   LDDW    .D1T1   *+A31(24),A13:A12 ; |101| 
           ; BRANCH OCCURS                   ; |100| 
;** --------------------------------------------------------------------------*
L14:    

           LDDW    .D1T1   *+A31(16),A11:A10 ; |101| 
||         LDDW    .D2T2   *+SP(40),B11:B10  ; |101| 

           RET     .S2     B3                ; |101| 
||         LDW     .D1T1   *+A31(32),A14     ; |101| 
||         LDDW    .D2T2   *+SP(48),B13:B12  ; |101| 

           LDW     .D2T1   *++SP(56),A15     ; |101| 
           NOP             4
           ; BRANCH OCCURS                   ; |101| 



	.sect	".text"
	.global	_unrollx1

;******************************************************************************
;* FUNCTION NAME: _unrollx1                                                   *
;*                                                                            *
;*   Regs Modified     : A0,A3,A4,A5,B0,B1,B4,B5                              *
;*   Regs Used         : A0,A3,A4,A5,A6,B0,B1,B3,B4,B5,B6                     *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_unrollx1:
;** --------------------------------------------------------------------------*
           CMPGT   .L2     B6,0,B1           ; |107| 
   [!B1]   RETNOP  .S2     B3,4              ; |113| 

           MV      .D1X    B4,A3             ; |105| 
||         MV      .D2     B6,B0             ; |105| 

           ; BRANCH OCCURS                   ; |113| ; chained return
;** --------------------------------------------------------------------------*
           CMPGT   .L1     A6,4,A0           ; |109| 
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L15
;** --------------------------------------------------------------------------*
L15:    
   [!A0]   BNOP    .S1     L19,4             ; |109| 

   [ A0]   SUB     .S1     A6,1,A5           ; |110| 
|| [!A0]   LDH     .D1T1   *A4++,A5          ; |111| 

           ; BRANCH OCCURS                   ; |109| 
;** --------------------------------------------------------------------------*
           SHR     .S1     A5,2,A5           ; |110| 

           MVK     .D2     0x4,B5
||         MV      .S2X    A3,B4
||         SUB     .D1     A5,1,A0

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 110
;*      Loop opening brace source line   : 110
;*      Loop closing brace source line   : 110
;*      Known Minimum Trip Count         : 1
;*      Known Max Trip Count Factor      : 1
;*      Loop Carried Dependency Bound(^) : 0
;*      Unpartitioned Resource Bound     : 1
;*      Partitioned Resource Bound(*)    : 1
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     0        0     
;*      .S units                     1*       0     
;*      .D units                     0        1*    
;*      .M units                     0        0     
;*      .X cross paths               0        0     
;*      .T address paths             0        1*    
;*      Long read paths              0        0     
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        0     (.L or .S unit)
;*      Addition ops (.LSD)          0        0     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             1*       0     
;*      Bound(.L .S .D .LS .LSD)     1*       1*    
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 6  Schedule found with 1 iterations in parallel
;*
;*      Register Usage Table:
;*          +-----------------------------------------------------------------+
;*          |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB|
;*          |00000000001111111111222222222233|00000000001111111111222222222233|
;*          |01234567890123456789012345678901|01234567890123456789012345678901|
;*          |--------------------------------+--------------------------------|
;*       0: |*                               |    **                          |
;*       1: |*                               |    **                          |
;*       2: |*                               |    **                          |
;*       3: |*                               |    **                          |
;*       4: |*                               |    **                          |
;*       5: |*                               |    **                          |
;*          +-----------------------------------------------------------------+
;*
;*      Done
;*
;*      Loop is interruptible
;*      Collapsed epilog stages     : 0
;*      Collapsed prolog stages     : 0
;*
;*      Minimum safe trip count     : 1
;*----------------------------------------------------------------------------*
;*        SINGLE SCHEDULED ITERATION
;*
;*        C98:
;*   0      [ A0]   BDEC    .S1     C98,A0            ; |110| 
;*   1              NOP             4
;*   5              STH     .D2T2   B5,*B4++          ; |110| 
;*                  ; BRANCH OCCURS                   ; |110| 
;*----------------------------------------------------------------------------*
L16:    ; PIPED LOOP PROLOG
;** --------------------------------------------------------------------------*
L17:    ; PIPED LOOP KERNEL
   [ A0]   BDEC    .S1     L17,A0            ; |110| <0,0> 
           NOP             4
           STH     .D2T2   B5,*B4++          ; |110| <0,5> 
;** --------------------------------------------------------------------------*
L18:    ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
           LDH     .D1T1   *A4++,A5          ; |111| 
           MV      .D1X    B4,A3
;** --------------------------------------------------------------------------*
L19:    
           SUB     .D2     B0,1,B0           ; |112| 
   [ B0]   BNOP    .S1     L15,2             ; |112| 
           SUB     .D1     A5,A6,A5          ; |111| 
           ADD     .D1     4,A5,A5           ; |111| 

           STH     .D1T1   A5,*A3++          ; |111| 
|| [ B0]   CMPGT   .L1     A6,4,A0           ; |109| 

           ; BRANCH OCCURS                   ; |112| 
;** --------------------------------------------------------------------------*
           RETNOP  .S2     B3,5              ; |113| 
           ; BRANCH OCCURS                   ; |113| 



	.sect	".text"
	.global	_unrollx2

;******************************************************************************
;* FUNCTION NAME: _unrollx2                                                   *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,A16,A17,B31                                *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,A16,A17,B31                                *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_unrollx2:
;** --------------------------------------------------------------------------*
           MV      .D2X    A6,B7             ; |116| 
           MPYLH   .M2     B7,B6,B8          ; |122| 

           MPYLH   .M2     B6,B7,B5          ; |122| 
||         CMPLT   .L2X    A6,4,B0           ; |127| 

   [ B0]   B       .S1     L23               ; |127| 

           MPYU    .M2     B7,B6,B5          ; |122| 
||         ADD     .D2     B8,B5,B8          ; |122| 

           SHL     .S2     B8,16,B4          ; |122| 
||         MV      .D1X    B4,A16            ; |116| 

           SHR     .S2     B7,2,B4           ; |120| 
||         ADD     .D2     B5,B4,B5          ; |122| 

           MV      .D1     A4,A3             ; |116| 
||         ZERO    .S1     A17               ; |125| 

           MV      .S1X    B4,A7             ; |120| 
||         SHR     .S2     B5,2,B5           ; |122| 
||         STNW    .D1T1   A17,*A16          ; |125| 
||         MV      .L1     A4,A8             ; |116| 
||         MV      .D2     B3,B31            ; |116| 
|| [ B0]   CMPLT   .L2     B6,2,B0           ; |130| 

           ; BRANCH OCCURS                   ; |127| 
;** --------------------------------------------------------------------------*
           LDH     .D1T1   *+A16(2),A4       ; |127| 
           SUB     .D2     B4,1,B0
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 127
;*      Loop opening brace source line   : 127
;*      Loop closing brace source line   : 127
;*      Known Minimum Trip Count         : 1
;*      Known Max Trip Count Factor      : 1
;*      Loop Carried Dependency Bound(^) : 0
;*      Unpartitioned Resource Bound     : 1
;*      Partitioned Resource Bound(*)    : 2
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     0        0     
;*      .S units                     0        1     
;*      .D units                     2*       0     
;*      .M units                     0        0     
;*      .X cross paths               0        0     
;*      .T address paths             1        0     
;*      Long read paths              0        0     
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        0     (.L or .S unit)
;*      Addition ops (.LSD)          0        0     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             0        1     
;*      Bound(.L .S .D .LS .LSD)     1        1     
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 6  Schedule found with 1 iterations in parallel
;*
;*      Register Usage Table:
;*          +-----------------------------------------------------------------+
;*          |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB|
;*          |00000000001111111111222222222233|00000000001111111111222222222233|
;*          |01234567890123456789012345678901|01234567890123456789012345678901|
;*          |--------------------------------+--------------------------------|
;*       0: |   **                           |*                               |
;*       1: |   ***                          |*                               |
;*       2: |   ***                          |*                               |
;*       3: |   ***                          |*                               |
;*       4: |   ***                          |*                               |
;*       5: |   ***                          |*                               |
;*          +-----------------------------------------------------------------+
;*
;*      Done
;*
;*      Loop is interruptible
;*      Collapsed epilog stages     : 0
;*      Collapsed prolog stages     : 0
;*
;*      Minimum safe trip count     : 1
;*----------------------------------------------------------------------------*
;*        SINGLE SCHEDULED ITERATION
;*
;*        C158:
;*   0              LDH     .D1T1   *A3++,A5          ; |127| 
;*       || [ B0]   BDEC    .S2     C158,B0           ; |127| 
;*   1              NOP             4
;*   5              ADDAH   .D1     A4,A5,A4          ; |127| 
;*                  ; BRANCH OCCURS                   ; |127| 
;*----------------------------------------------------------------------------*
L20:    ; PIPED LOOP PROLOG
;** --------------------------------------------------------------------------*
L21:    ; PIPED LOOP KERNEL

   [ B0]   BDEC    .S2     L21,B0            ; |127| <0,0> 
||         LDH     .D1T1   *A3++,A5          ; |127| <0,0> 

           NOP             4
           ADDAH   .D1     A4,A5,A4          ; |127| <0,5> 
;** --------------------------------------------------------------------------*
L22:    ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
           STH     .D1T1   A4,*+A16(2)
           CMPLT   .L2     B6,2,B0           ; |130| 
;** --------------------------------------------------------------------------*
L23:    
   [ B0]   B       .S1     L29               ; |130| 

           SHR     .S2     B6,1,B6
||         ZERO    .S1     A9                ; |121| 
||         ADD     .L1     4,A16,A3          ; |128| 
|| [ B0]   LDH     .D1T1   *+A16(4),A4       ; |147| 
|| [!B0]   CMPLT   .L2     B7,8,B0           ; |132| 

           NOP             4
           ; BRANCH OCCURS                   ; |130| 
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L24
;** --------------------------------------------------------------------------*
L24:    
   [ B0]   BNOP    .S1     L26,2             ; |132| 
   [!B0]   SUB     .D2     B7,4,B4           ; |134| 

   [!B0]   SHR     .S2     B4,2,B4           ; |134| 
|| [ B0]   CMPLT   .L2     B7,0,B0           ; |139| 

           NOP             1
           ; BRANCH OCCURS                   ; |132| 
;** --------------------------------------------------------------------------*

           MV      .D1X    B4,A0             ; |134| 
||         SUB     .S1     A3,4,A3

           MVKL    .S1     __remi,A5         ; |134| 
           MVKH    .S1     __remi,A5         ; |134| 
           LDH     .D1T1   *+A8[A9],A4       ; |134| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
L25:    
           CALL    .S2X    A5                ; |134| 
           ADDKPC  .S2     RL104,B3,0        ; |134| 
           MV      .D2     B5,B4             ; |134| 
           NOP             1
           ADD     .D1     A4,A4,A4          ; |134| 

           ADD     .S1     1,A9,A4           ; |134| 
||         STH     .D1T1   A4,*++A3(4)       ; |134| 

RL104:     ; CALL OCCURS                     ; |134| 
           MVKL    .S2     __remi,B8         ; |135| 

           MVKH    .S2     __remi,B8         ; |135| 
||         LDH     .D1T1   *+A8[A7],A5       ; |135| 

           CALL    .S2     B8                ; |135| 
           MV      .S1     A4,A9             ; |134| 
           MV      .D2     B5,B4             ; |135| 
           ADDKPC  .S2     RL105,B3,0        ; |135| 
           ADD     .D1     A5,A5,A4          ; |135| 

           ADD     .S1     1,A7,A4           ; |135| 
||         STH     .D1T1   A4,*+A3(2)        ; |135| 

RL105:     ; CALL OCCURS                     ; |135| 
           SUB     .D1     A0,1,A0           ; |136| 
   [ A0]   BNOP    .S1     L25,2             ; |136| 

   [!A0]   CMPLT   .L2     B7,0,B0           ; |139| 
|| [!A0]   ADD     .L1     4,A3,A3
|| [ A0]   MVKL    .S1     __remi,A5         ; |134| 
||         MV      .D1     A4,A7             ; |135| 

   [ A0]   MVKH    .S1     __remi,A5         ; |134| 
   [ A0]   LDH     .D1T1   *+A8[A9],A4       ; |134| 
           ; BRANCH OCCURS                   ; |136| 
;** --------------------------------------------------------------------------*
L26:    
   [ B0]   B       .S1     L28               ; |139| 
           STH     .D1T1   A17,*A3           ; |137| 

           STH     .D1T1   A17,*+A3(2)       ; |138| 
|| [!B0]   ADD     .D2     4,B7,B4           ; |141| 
|| [ B0]   SUB     .S1X    B6,1,A0           ; |146| 

   [!B0]   SHR     .S2     B4,2,B4           ; |141| 
   [!B0]   MVKL    .S1     __remi,A5         ; |141| 
   [!B0]   MV      .D1X    B4,A0             ; |141| 
           ; BRANCH OCCURS                   ; |139| 
;** --------------------------------------------------------------------------*

           LDH     .D1T1   *+A8[A9],A4       ; |141| 
||         MVKH    .S1     __remi,A5         ; |141| 

           LDH     .D1T1   *A3,A6            ; |141| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
L27:    
           CALL    .S2X    A5                ; |141| 
           ADDKPC  .S2     RL106,B3,0        ; |141| 
           MV      .D2     B5,B4             ; |141| 
           NOP             1
           ADDAH   .D1     A6,A4,A4          ; |141| 

           ADD     .S1     1,A9,A4           ; |141| 
||         STH     .D1T1   A4,*A3            ; |141| 

RL106:     ; CALL OCCURS                     ; |141| 

           MVKL    .S2     __remi,B8         ; |142| 
||         LDH     .D1T1   *+A3(2),A5        ; |142| 

           MVKH    .S2     __remi,B8         ; |142| 
||         LDH     .D1T1   *+A8[A7],A6       ; |142| 

           CALL    .S2     B8                ; |142| 
           MV      .S1     A4,A9             ; |141| 
           MV      .D2     B5,B4             ; |142| 
           ADDKPC  .S2     RL107,B3,0        ; |142| 
           ADDAH   .D1     A5,A6,A4          ; |142| 

           ADD     .S1     1,A7,A4           ; |142| 
||         STH     .D1T1   A4,*+A3(2)        ; |142| 

RL107:     ; CALL OCCURS                     ; |142| 
           SUB     .D1     A0,1,A0           ; |143| 
   [ A0]   BNOP    .S1     L27,2             ; |143| 

   [ A0]   MVKL    .S1     __remi,A5         ; |141| 
||         MV      .D1     A4,A7             ; |142| 

   [ A0]   MVKH    .S1     __remi,A5         ; |141| 
|| [ A0]   LDH     .D1T1   *+A8[A9],A4       ; |141| 

   [!A0]   SUB     .S1X    B6,1,A0           ; |146| 
|| [ A0]   LDH     .D1T1   *A3,A6            ; |141| 

           ; BRANCH OCCURS                   ; |143| 
;** --------------------------------------------------------------------------*
L28:    
   [ A0]   BNOP    .S1     L24,4             ; |146| 

           SUB     .D2     B6,1,B6           ; |146| 
||         ADD     .D1     4,A3,A3           ; |144| 
|| [ A0]   CMPLT   .L2     B7,8,B0           ; |132| 

           ; BRANCH OCCURS                   ; |146| 
;** --------------------------------------------------------------------------*
           LDH     .D1T1   *+A16(4),A4       ; |147| 
           NOP             4
;** --------------------------------------------------------------------------*
L29:    
           STH     .D1T1   A4,*A3            ; |147| 

           RETNOP  .S2     B31,4             ; |149| 
||         LDH     .D1T1   *+A16(6),A4       ; |148| 

           STH     .D1T1   A4,*+A3(2)        ; |148| 
           ; BRANCH OCCURS                   ; |149| 



	.sect	".text"
	.global	_filt_gen

;******************************************************************************
;* FUNCTION NAME: _filt_gen                                                   *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B13,SP,A16,*
;*                           A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28, *
;*                           A29,A30,A31,B16,B17,B18,B19,B20,B21,B22,B23,B24, *
;*                           B25,B26,B27,B28,B29,B30,B31                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B13,SP,A16,*
;*                           A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28, *
;*                           A29,A30,A31,B16,B17,B18,B19,B20,B21,B22,B23,B24, *
;*                           B25,B26,B27,B28,B29,B30,B31                      *
;*   Local Frame Size  : 0 Args + 6804 Auto + 32 Save = 6836 byte             *
;******************************************************************************
_filt_gen:
;** --------------------------------------------------------------------------*
           MVKL    .S2     _bresenham_guide,B5 ; |170| 
           MVKH    .S2     _bresenham_guide,B5 ; |170| 

           ADDK    .S2     -6840,SP          ; |162| 
||         MV      .D1X    SP,A31            ; |162| 

           CALL    .S2     B5                ; |170| 
           STDW    .D1T1   A15:A14,*-A31(8)

           STDW    .D1T1   A13:A12,*-A31(16)
||         STW     .D2T2   B10,*+SP(6840)

           MV      .D1X    B4,A15            ; |162| 
||         STW     .D2T1   A10,*+SP(6816)

           STW     .D2T1   A11,*+SP(6820)
||         MV      .D1X    B6,A13            ; |162| 
||         CMPGT   .L1     A4,0,A14          ; |178| 
||         MV      .S1     A4,A12            ; |162| 
||         MV      .S2X    A8,B10            ; |162| 

           ADDKPC  .S2     RL108,B3,0        ; |170| 
||         MV      .L2     B3,B13
||         STW     .D2T2   B13,*+SP(6812)
||         MV      .D1X    B6,A6             ; |162| 
||         MV      .S1     A6,A11            ; |162| 
||         MV      .L1     A4,A10            ; |162| 

RL108:     ; CALL OCCURS                     ; |170| 
           MVKL    .S1     _unrollx1,A3      ; |171| 
           MVKH    .S1     _unrollx1,A3      ; |171| 
           MVK     .S2     6408,B4           ; |171| 
           CALL    .S2X    A3                ; |171| 
           ADDKPC  .S2     RL109,B3,0        ; |171| 
           MV      .D1     A13,A4            ; |171| 
           ADD     .D2     B4,SP,B4          ; |171| 
           MV      .L2X    A12,B6            ; |171| 
           MVK     .S1     0x4,A6            ; |171| 
RL109:     ; CALL OCCURS                     ; |171| 
           MVKL    .S1     _unrollx2,A3      ; |172| 
           MVKH    .S1     _unrollx2,A3      ; |172| 
           MVK     .S1     6408,A4           ; |172| 
           CALL    .S2X    A3                ; |172| 
           ADDKPC  .S2     RL110,B3,2        ; |172| 
           ADD     .D1X    A4,SP,A4          ; |172| 
           MV      .D2     B10,B4            ; |172| 
RL110:     ; CALL OCCURS                     ; |172| 
           MVKL    .S2     _filter_design,B5 ; |173| 
           MVKH    .S2     _filter_design,B5 ; |173| 
           CALL    .S2     B5                ; |173| 
           MV      .S1     A12,A4            ; |173| 
           MV      .L2X    A15,B4            ; |173| 
           MV      .D1     A13,A6            ; |173| 
           ADD     .D2     8,SP,B6           ; |173| 
           ADDKPC  .S2     RL111,B3,0        ; |173| 
RL111:     ; CALL OCCURS                     ; |173| 
           MVKL    .S1     _filter_normalize,A3 ; |174| 
           MVKH    .S1     _filter_normalize,A3 ; |174| 
           MV      .D1     A12,A4            ; |174| 
           CALL    .S2X    A3                ; |174| 
           ADD     .D2     8,SP,B4           ; |174| 
           ADDKPC  .S2     RL112,B3,3        ; |174| 
RL112:     ; CALL OCCURS                     ; |174| 
           MV      .D1     A14,A0
   [!A0]   BNOP    .S1     L32,3             ; |178| 

   [!A0]   LDW     .D2T1   *+SP(6836),A15    ; |190| 
||         ZERO    .S2     B10

   [!A0]   LDW     .D2T1   *+SP(6824),A12    ; |190| 
           ; BRANCH OCCURS                   ; |178| 
;** --------------------------------------------------------------------------*
;**   BEGIN LOOP L30
;** --------------------------------------------------------------------------*
L30:    
           ADD     .D2     B10,SP,B4
           MVK     .D2     0x4,B5            ; |180| 
           MV      .D1X    B4,A12            ; Define a twin register
           MV      .D1X    B5,A13            ; |180| 
           MVKL    .S2     __mpyd,B6         ; |182| 
           MVKH    .S2     __mpyd,B6         ; |182| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains a call
;*----------------------------------------------------------------------------*
L31:    
           CALL    .S2     B6                ; |182| 
           LDDW    .D1T1   *++A12,A5:A4      ; |182| 
           ZERO    .D2     B5                ; |182| 
           MVKH    .S2     0x40d00000,B5     ; |182| 
           ADDKPC  .S2     RL114,B3,0        ; |182| 
           ZERO    .D2     B4                ; |182| 
RL114:     ; CALL OCCURS                     ; |182| 
           MVKL    .S1     __fixdi,A3        ; |182| 
           MVKH    .S1     __fixdi,A3        ; |182| 
           NOP             1
           CALL    .S2X    A3                ; |182| 
           ADDKPC  .S2     RL115,B3,4        ; |182| 
RL115:     ; CALL OCCURS                     ; |182| 
           EXT     .S1     A4,16,16,A4       ; |182| 
           CMPLT   .L1     A4,0,A0           ; |182| 

           SUB     .D1     A13,1,A0          ; |187| 
|| [ A0]   MVK     .L1     0xfffffffd,A3     ; |182| 
|| [!A0]   MVK     .S1     0x4,A3            ; |182| 

   [ A0]   BNOP    .S1     L31,1             ; |187| 
           ADD     .D1     A3,A4,A3
           SHR     .S1     A3,3,A3

   [ A0]   MVKL    .S2     __mpyd,B6         ; |182| 
||         SUB     .S1     A13,1,A13         ; |187| 
||         STH     .D1T1   A3,*A11++         ; |186| 

   [!A0]   SUB     .D1     A10,1,A0          ; |188| 
|| [ A0]   MVKH    .S2     __mpyd,B6         ; |182| 

           ; BRANCH OCCURS                   ; |187| 
;** --------------------------------------------------------------------------*
   [ A0]   BNOP    .S1     L30,4             ; |188| 

           SUB     .D1     A10,1,A10         ; |188| 
||         ADDK    .S2     32,B10            ; |188| 
|| [!A0]   LDW     .D2T1   *+SP(6836),A15    ; |190| 

           ; BRANCH OCCURS                   ; |188| 
;** --------------------------------------------------------------------------*
           LDW     .D2T1   *+SP(6824),A12    ; |190| 
;** --------------------------------------------------------------------------*
L32:    
           LDW     .D2T1   *+SP(6828),A13    ; |190| 
           LDW     .D2T1   *+SP(6816),A10    ; |190| 
           LDW     .D2T1   *+SP(6820),A11    ; |190| 

           LDW     .D2T2   *+SP(6840),B10    ; |190| 
||         MV      .S2     B13,B3            ; |190| 

           RET     .S2     B3                ; |190| 
||         LDW     .D2T1   *+SP(6832),A14    ; |190| 

           LDW     .D2T2   *+SP(6812),B13    ; |190| 
           NOP             3
           ADDK    .S2     6840,SP           ; |190| 
           ; BRANCH OCCURS                   ; |190| 


;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	__fltid
	.global	__mpyd
	.global	__divd
	.global	__addd
	.global	__cmpd
	.global	__negd
	.global	__subd
	.global	__fixdi
	.global	__remi
